﻿using System;
using FlyWebFrame.Model;
using System.IO;
using Fly.Data;
using System.Globalization;

namespace FlyWebFrame.Action.admin
{
    public class editnews : baseaction
    {
        public string editTitle;
        public int edit_id;
        public int editcat_id;
        public dynamic view;
        public string name;
        public string viName;
        public string Desc;
        public string ViDesc;
        public string Detail;
        public string ViDetail;
        public string image;
        public int catid;
        public string err;
        public dynamic subcats;
        public string subcat_script;
        public int status, isFeatured;
        public string tag_script;
        public string IsChecked;
        public string IsFeaturedChecked;
        public string eventTime;

        public override void Treat()
        {
            editTitle = "Sửa tin tức";
            contentleft = "/html/admin/editnews.htm";
            page_title = "LEAD Consulting - Chỉnh sửa tin tức";
            admin_script = "$('#ad_news').addClass('active');";
            
            News news = new News();
            // get big cat
            Categories newscat = new Categories();
            view = newscat.GetByTemplate("news.htm").Data;

            Int32.TryParse(GetParameter(0), out edit_id);
            news.id = edit_id;
            if (news.Instance().Status)
            {
                catid = news.catId;
                name = news.title;
                Desc = news.description;
                Detail = news.detail;
                viName = news.viTitle;
                ViDesc = news.viDescription;
                ViDetail = news.viDetail;
                eventTime = news.eventTime.ToString("yyyy-MM-dd HH:mm:ss");

                image = news.image;
                if (news.status == 1)
                    IsChecked = "checked";
                if (news.isFeatured == 1)
                    IsFeaturedChecked = "checked";
            }
            else
            {
                // looix
            }
            if (Form["submit"] == "true")
            {
                err = "";
                Int32.TryParse(Form["Id"], out edit_id);
                Int32.TryParse(Form["CatId"], out editcat_id);

                if (edit_id == 0)
                {
                    Redirect("/admin/news");
                }
                news.id = edit_id;
                if (editcat_id == 0)
                {
                    err += "Bạn chưa chọn danh mục.";
                }
                if (Form["Name"] == "" || Form["Name"].Length > 200)
                {
                    err += "<br />Tiêu đề không được để trống hoặc dài hơn 200 ký tự.";
                }
                if (Form["ViName"] == "" || Form["ViName"].Length > 200)
                {
                    err += "<br />Tiêu đề tiếng Việt không được để trống hoặc dài hơn 200 ký tự.";
                }
                if (Form["Description"] == "" || Form["Description"].Length > 500)
                {
                    err += "<br />Mô tả tin tức không được để trống hoặc dài hơn 500 ký tự.";
                }
                if (Form["ViDescription"] == "" || Form["ViDescription"].Length > 500)
                {
                    err += "<br />Mô tả tin tức tiếng Việt không được để trống hoặc dài hơn 500 ký tự.";
                }
                if (Form["Detail"] == "" || Form["Detail"].Length > 50000)
                {
                    err += "<br />Chi tiết tin tức không được để trống hoặc dài hơn 50000 ký tự.";
                }
                if (Form["ViDetail"] == "" || Form["ViDetail"].Length > 50000)
                {
                    err += "<br />Chi tiết tin tức tiếng Việt không được để trống hoặc dài hơn 50000 ký tự.";
                }
                Int32.TryParse(Form["Publish"], out status);
                Int32.TryParse(Form["IsFeatured"], out isFeatured);
                if (editcat_id == 0 && status == 1)
                {
                    err += "<br />Bạn phải chọn danh mục trước khi publish tin";
                }
                Fly.Web.Resource.File upfile = new Fly.Web.Resource.File();
                if (upfile.Setup(File["Image"], "upload/news", Fly.Util.Text.Random(20)))
                {
                    while (upfile.IsExisted())
                    {
                        upfile.Setup(File["Image"], "upload/news", Fly.Util.Text.Random(20));
                    }
                    if (upfile.CheckExt(".jpg, .png, .gif, .bmp"))
                    {
                        if (upfile.Save())
                        {
                            Fly.Util.Resource.Image.Resize(upfile.FullPath, 312, 0);
                            if (news.Instance().Status)
                            {
                                Fly.Web.Resource.File oldimg = new Fly.Web.Resource.File();
                                oldimg.FullPath = news.image;
                                oldimg.Delete();
                            }
                        }
                        else
                        {
                            err += "<br />Upload ảnh không thành công.";
                        }
                    }
                    else
                    {
                        err += "<br />File bạn chọn không phải ảnh.";
                    }
                }

                name = Form["Name"];
                viName = Form["viName"];
                Desc = Form["Description"];
                ViDesc = Form["ViDescription"];
                Detail = Form["Detail"];
                ViDetail = Form["ViDetail"];
                eventTime = Form["eventTime"];
                catid = editcat_id;

                if (err != "")
                {
                    admin_script += "$('#err-newsedit').removeClass('hidden');$('#err-newsedit').html('" + err + "');";
                    upfile.Delete();
                }
                else
                {
                    news.title = Form["Name"];
                    news.description = Form["Description"];
                    news.detail = Form["Detail"];
                    news.viTitle = Form["ViName"];
                    news.viDescription = Form["ViDescription"];
                    news.viDetail = Form["ViDetail"];
                    news.catId = editcat_id;
                    news.image = upfile.FullPath;
                    news.status = status;
                    news.isFeatured = isFeatured;
                    try
                    {
                        news.eventTime = DateTime.ParseExact(eventTime, "yyyy-MM-dd HH:mm:ss", new CultureInfo("en-US", true));
                    }
                    catch (Exception ex)
                    {
                        news.eventTime = DateTime.MinValue;
                    }

                    Result result = news.Edit();
                    if (result.Status)
                    {
                        admin_script += "$('#msg-newsedit').removeClass('hidden');";
                    }
                    else
                    {
                        admin_script += "$('#err-newsedit').removeClass('hidden');$('#err-newsedit').html('Dữ liệu bạn nhập không hợp lệ');";
                        upfile.Delete();
                    }
                }
            }
            else
            {
                err = "Not submitted";
            }
        }
    }
}